NI
pedido

Script de remover pedra por tempo

Por Nickbhz, 14 de out. de 2015 em Scripts

otserv
8
4.3k
NickbhzN
14 de outubro de 2015 às 13:56

Boa Tarde xTibianos...

 

Estou precisando de um script que ao puxar a alavanca(9825), uma pedra seja removida por 120 segundos e uma mensagem seria enviada so pra quem puxou a alavanca..

 

 

Agradeço desde já!!!

 

REP+

Editado Outubro 14 por brendoonh

SkyLighS
14 de outubro de 2015 às 14:19

Visite este TÓPICO

NickbhzN
14 de outubro de 2015 às 14:25

Visite este TÓPICO

Obrigado pela ajuda, mais o meu script seria um pouco diferente...

Queria como mencionei no topico.

SkyLighS
14 de outubro de 2015 às 14:47


function onUse(cid, item, fromPosition, itemEx, toPosition)

piece1pos = {x=623, y=377, z=8, stackpos=1}

local tempo = 2*60*1000 -- tempo para pedra voltar

getpiece1 = getThingfromPos(piece1pos)

if item.uid == 8107 and item.itemid == 9827 and getpiece1.itemid == 8518 then

doRemoveItem(getpiece1.uid,1)

doTransformItem(item.uid,item.itemid+1)

doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.")

addEvent(doCreateItem, tempo, 8518, piece1pos)

addEvent(doTransformItem, tempo, item.uid,9827)

elseif item.uid == 8107 and item.itemid == 9828 then

doTransformItem(item.uid,item.itemid-1)

addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos)

else

doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.")

end

return 1

end

if item.uid == 8107 >> Unique Id da Alavanca

item.itemid == 9827 >> ID da alavanca

getpiece1.itemid == 8518 then >> ID da pedra que vai ser removida

addEvent(doCreateItem, tempo, 8518, piece1pos) >> neste local você deve colocar novamente o ID da pedra q vai ser criada novamente depois de X tempo

piece1pos = {x=623, y=377, z=8, stackpos=1} >>> Posição da pedra

local tempo = 2*60*1000 -- tempo para parede voltar, neste caso, 2 minutos

addEvent(doTransformItem, tempo, item.uid,9827) << aqui você coloca novamente o id da alavanca q voltara para a posição original depois do tempo configurado.

 

Editado Outubro 14 por Kissy

NickbhzN
14 de outubro de 2015 às 19:14
function onUse(cid, item, fromPosition, itemEx, toPosition)
piece1pos = {x=623, y=377, z=8, stackpos=1}
local tempo = 2*60*1000 -- tempo para pedra voltar
getpiece1 = getThingfromPos(piece1pos)
if item.uid == 8107 and item.itemid == 9827 and getpiece1.itemid == 8518 then
doRemoveItem(getpiece1.uid,1)
doTransformItem(item.uid,item.itemid+1)
doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.")
addEvent(doCreateItem, tempo, 8518, piece1pos)
addEvent(doTransformItem, tempo, item.uid,9827)
elseif item.uid == 8107 and item.itemid == 9828 then
doTransformItem(item.uid,item.itemid-1)
addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos)
else
doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.")
end
return 1
end

if item.uid == 8107 >> Unique Id da Alavanca

item.itemid == 9827 >> ID da alavanca

getpiece1.itemid == 8518 then >> ID da pedra que vai ser removida

addEvent(doCreateItem, tempo, 8518, piece1pos) >> neste local você deve colocar novamente o ID da pedra q vai ser criada novamente depois de X tempo

piece1pos = {x=623, y=377, z=8, stackpos=1} >>> Posição da pedra

local tempo = 2*60*1000 -- tempo para parede voltar, neste caso, 2 minutos

addEvent(doTransformItem, tempo, item.uid,9827) << aqui você coloca novamente o id da alavanca q voltara para a posição original depois do tempo configurado.

 

Boa noite, tentei aqui com a tal alavanca que mencionei no topico, mais n consegui, tentei por a famosa alavanca de id (1945 ) e msm assim nao consegui, sempre aparece a mensagem:

"19:06 Não é possivel realizar esta ação"

 

Teria como você so alterar essa script? Ela funciona, mas, quando alguem puxa a alavanca aparece a msg para todos no jogo, teria como ajeitar e aparecer so pra qm puxou??

local config = {
   pos = {x=174, y=116, z=12},
   stoneid = 1353,
   time = 30 -- time in seconds to remove the stone
}


function onUse(cid, item, fromPosition, itemEx, toPosition)
     local stone = getTileItemById(config.pos,config.stoneid).uid
     if(stone > 0) then
       doRemoveItem(stone,1)
  broadcastMessage("A pedra foi removida.", MESSAGE_STATUS_CONSOLE_RED)
       doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED)
       addEvent(doCreateItem, config.time * 1000, config.stoneid, 1, config.pos)
       doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
     else
       doPlayerSendCancel(cid, "A pedra ja foi removida, aguarde 30 segundos para abrir novamente.")
     end
     return true
end

Editado Outubro 14 por brendoonh

SkyLighS
14 de outubro de 2015 às 19:34
Melhor resposta

 

Boa noite

local config = {
   pos = {x=174, y=116, z=12},
   stoneid = 1353,
   time = 30 -- time in seconds to remove the stone
}


function onUse(cid, item, fromPosition, itemEx, toPosition)
     local stone = getTileItemById(config.pos,config.stoneid).uid
     if(stone > 0) then
       doRemoveItem(stone,1)
  doPlayerSendTextMessage(cid,22,"A pedra foi removida")
       doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED)
       addEvent(doCreateItem, config.time * 1000, config.stoneid, 1, config.pos)
       doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
     else
       doPlayerSendCancel(cid, "A pedra ja foi removida, aguarde 30 segundos para abrir novamente.")
     end
     return true
end

Editado Outubro 14 por Kissy

NickbhzN
14 de outubro de 2015 às 22:22
local config = {
   pos = {x=174, y=116, z=12},
   stoneid = 1353,
   time = 30 -- time in seconds to remove the stone
}


function onUse(cid, item, fromPosition, itemEx, toPosition)
     local stone = getTileItemById(config.pos,config.stoneid).uid
     if(stone > 0) then
       doRemoveItem(stone,1)
  doPlayerSendTextMessage(cid,22,"A pedra foi removida")
       doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED)
       addEvent(doCreateItem, config.time * 1000, config.stoneid, 1, config.pos)
       doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
     else
       doPlayerSendCancel(cid, "A pedra ja foi removida, aguarde 30 segundos para abrir novamente.")
     end
     return true
end

Muito Obrigado!

SkyLighS
14 de outubro de 2015 às 22:35

Movido para resolvidos.


Tópico Movido
Este tópico foi movido de "OTServSuporte OTServSuporte Scripting"
para "OTServSuporte OTServSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".